Learning Objectives

After completing this lesson, you’ll be able to:

Instructions

In this lesson, you will:

Resources

Exercise

Jennifer

As a resident FME expert, Jennifer is often asked to translate data (particularly the community map) between formats. She realizes it would be much simpler if she created a workspace to do this, regardless of format, and let the end-users carry out the translation themselves. She's started building a workspace, but now you need to help her add fanouts to ensure the users receive data in the form they expect.

Note

This would make an excellent use for an FME Flow Data Download service in the future, but for now, we'll let the users run the workspace in FME Workbench. See the FME Flow Authoring learning path to learn more about creating self-serve data download workflows.

1) Open Starting Workspace

2) Explore the Workspace

Reader and writer formats in the Navigator

Feature type names

If the workspace is run now, the user can choose the feature types and format, but FME will return the results in a single layer/file. This result could be more optimal. Let's change the workspace so the user receives separate layers/files for each feature type. We'll also zip the output for convenience.

3) Set Feature Type Fanout

We want to output records to their original table. To do this, we need to know where they came from, which is obtained from a format attribute called fme_feature_type.

Setting Feature Type Name to fme_feature_type

Feature type fanout

4) Create a Zipped Output

 Destination Generic (Any Format) Folder parameter in the Navigator

We will create a zipped folder to contain all of our files.

C:\FMEData\Output\Training\CommunityMapping.zip

This will create a zipped file called CommunityMapping.

5) Save and Run Workspace

Checking the output path 

Community Mapping zip output

Now, you have a solution that almost anyone can open and run. If you publish the workspace to FME Flow, the same user parameters will be available.

6) Tile Output

The city plans to greatly expand the size of these layers soon. Therefore, they'd like the output of the workspace to be tiled into four spatial quadrants, writing out each layer in four separate files.

This is easy to accomplish with the Tiler transformer and a dataset fanout.

Added a Tiler

Define Tiles By Number of Tiles
Columns 2
Rows 2

7) Configure Dataset Fanout

Now that we have attributes we can use to group the output, we can use them in a dataset fanout expression to construct a custom path.

Fanout Expression

Specifying Fanout Expression

CommunityMapping.zip\@Value(_column)x@Value(_row)\

This will create folders within CommunityMapping.zip that reference the tile like this:

The output of the writer feature types will then be spatially split between these folders, so each will contain shapefiles named for their original layer.

8) Save and Run Workspace

Before we run the workspace, we should delete the ZIP file we just wrote. Otherwise, we'll just add data to it.

Subfolder structure

Now the workspace uses both feature type and dataset fanouts for ultimate control over the output!

Tips and Tricks: Geometry Handling with Fanouts

Did you notice that FME handled the different geometry types and output the files with the geometry as part of the name? It’s a Shapefile format thing. FME can never – and will never – write more than one geometry type to the same Shapefile .shp file.

Tips and Tricks: Dynamic Translations

The one drawback with the output of this workspace is that each Shapefile has attributes for all the source tables. To avoid that outcome, you would need to use a dynamic translation. We cover those in the FME Form Advanced learning path.